package cn.source.system.service;

import java.util.List;
import cn.source.system.domain.SchoolPlan;

/**
 * 学校招生计划Service接口
 * 
 * @author sourcebyte.vip
 * @date 2024-03-15
 */
public interface ISchoolPlanService 
{
    /**
     * 查询学校招生计划
     * 
     * @param id 学校招生计划主键
     * @return 学校招生计划
     */
    public SchoolPlan selectSchoolPlanById(Long id);

    /**
     * 查询学校招生计划列表
     * 
     * @param schoolPlan 学校招生计划
     * @return 学校招生计划集合
     */
    public List<SchoolPlan> selectSchoolPlanList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolPlanList2(SchoolPlan schoolPlan);
    
    public List<SchoolPlan> selectSchoolPlanCheckList(SchoolPlan schoolPlan);
    
    public List<SchoolPlan> selectSchoolZyzList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolListByPlanList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolMajorPlanList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolMajorPmPlanList(SchoolPlan schoolPlan);
    
    public List<SchoolPlan> selectSchoolZyz2023PlanList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolZyz2024PlanList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolZyz2024PlanList4Tb(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolZyzPlanList4Page(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolZyPlanList4Page(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolMajorNameList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectZyfxList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectZyzfxList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolZyzZsCountList(SchoolPlan schoolPlan);
    
    //按专业组查找各专业今年的招生计划
    public List<SchoolPlan> selectSchoolZyPlan2023List(SchoolPlan schoolPlan);
    
    public List<SchoolPlan> selectSchoolZyPlan2023ByZyzStrList(SchoolPlan schoolPlan);
    
    
    public List<SchoolPlan> selectSchoolZyzPlanList(SchoolPlan schoolPlan);

    public List<SchoolPlan> fix2023PlanList(SchoolPlan schoolPlan);

    public List<SchoolPlan> fixSelectZyzZm1NullList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectLowGradePlanList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectZyzPlanList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolZyzPlanList3Year(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolMajorList3Year(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectSchoolDistinctMajorList3Year(SchoolPlan schoolPlan);

    /**
     * 新增学校招生计划
     * 
     * @param schoolPlan 学校招生计划
     * @return 结果
     */
    public int insertSchoolPlan(SchoolPlan schoolPlan);

    public int insertSchoolPlanAllList(List<SchoolPlan> list);

    public int insertSchoolPlanAllList2(List<SchoolPlan> list);

    public List<SchoolPlan> selectZyzAdminList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectZyzLowGradeList(SchoolPlan schoolPlan);

    public List<SchoolPlan> selectZyzAvgGradeList(SchoolPlan schoolPlan);

    /**
     * 修改学校招生计划
     * 
     * @param schoolPlan 学校招生计划
     * @return 结果
     */
    public int updateSchoolPlan(SchoolPlan schoolPlan);

    public int updateSchoolPlanZyzButch(SchoolPlan schoolPlan);

    public int updateSchoolPlanZyzList(List<SchoolPlan> list);

    public int updateSchoolPlanZyz2List(List<SchoolPlan> list);

    public int updateSchoolPlanMajorLowList(List<SchoolPlan> list);

    public int updateSchoolPlanZyzPlanList(List<SchoolPlan> list);

    public int updateSchoolPlanZyzAdminList(List<SchoolPlan> list);

    public int updateSchoolPlanZyzLowGradeList(List<SchoolPlan> list);

    public int updateSchoolPlanZyzAvgGradeList(List<SchoolPlan> list);

    public int updatefixSelectZyzZm1NullList(List<SchoolPlan> list);

    /**
     * 批量删除学校招生计划
     * 
     * @param ids 需要删除的学校招生计划主键集合
     * @return 结果
     */
    public int deleteSchoolPlanByIds(Long[] ids);

    /**
     * 删除学校招生计划信息
     * 
     * @param id 学校招生计划主键
     * @return 结果
     */
    public int deleteSchoolPlanById(Long id);
}
